Metadata-Version: 2.4
Name: reinkpy
Version: 2.240918.2.dev20+g4ae04caa8
Summary: Waste ink counter resetter for some (EPSON) printers.
Author-email: Daniel Gerber <dg@atufi.org>
Project-URL: repository, https://codeberg.org/atufi/reinkpy.git
Keywords: printer,inkjet,EEPROM
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: 
Classifier: License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: pywin32; platform_system == "Windows"
Provides-Extra: usb
Requires-Dist: pyusb; extra == "usb"
Provides-Extra: ui
Requires-Dist: asciimatics; extra == "ui"
Provides-Extra: net
Requires-Dist: pysnmp-lextudio==6.1.2; extra == "net"
Requires-Dist: pyasn1==0.6.0; extra == "net"
Requires-Dist: zeroconf; extra == "net"
Dynamic: license-file

ReInkPy
=======
Waste ink counter resetter for some (EPSON) printers.

Free and open. [Python](https://python.org) code.


# Getting started

```
pip install -e "reinkpy[ui,usb,net]@git+https://codeberg.org/atufi/reinkpy"
```

`python -m reinkpy.ui` launches a GUI.

For debugging: `LOGLEVEL=DEBUG python -m reinkpy.ui`, then look at the log file
mentioned on the CLI.

Python API examples:

```
import reinkpy

for p in reinkpy.Device.find():
	print(p)
    print(p.info)

# Or get a specific device
p = reinkpy.Device.from_file('/dev/usb/lp0')
p = reinkpy.Device.from_usb(manufacturer='EPSON')
p = reinkpy.Device.from_ip('192.168.0.255')

e = p.epson # Epson driver
if not e.spec.model: # Either model is unknown or autoconfiguration failed
    # Some printers just don't advertise their model name cleanly, e.g.
	e.configure("XP-352")

print(e.read_eeprom())
# e.reset_waste()
# e.write_eeprom((address, value), …)
```

CLI one-liners:

`python -c 'import reinkpy;print(reinkpy.Device.from_usb().epson.read_eeprom(*range(256)))'`

`python -c 'import reinkpy;reinkpy.Device.from_ip("1.2.3.4").epson.reset_waste()'`


# Warning

This is software. It won't actually replace pads.


# See also

This was started as a port of [ReInk](https://github.com/lion-simba/reink/).
See also [epson_print_conf](https://github.com/Ircama/epson_print_conf).

For use on closed platforms, see [issue #16](https://codeberg.org/atufi/reinkpy/issues/16).
